#include "server.h"

//server->client[client_index].root_dir
//server->client[client_index].current_dir
//dirname
int handle_rm(int net_fd, ClientInfo *client, const char* filename) {

    client->socket = net_fd;

    Message response = {0};

    // 尝试删除指定的文件
    char temp_path[PATH_MAX] = {0};
    strcpy(temp_path, client->root_dir);
    strcat(temp_path, client->current_dir);
    strcat(temp_path, filename);
    printf("%s\n",temp_path);
    if (remove(temp_path) == 0) {
        // 如果删除成功
        response.type = MSG_TYPE_SUCCESS;  // 设置响应类型为成功
        // 构造成功消息，包含被删除的文件名
        response.length = snprintf(response.data, sizeof(response.data), "成功删除: %s", filename);
    } else {
        // 如果删除失败
        response.type = MSG_TYPE_FAIL;  // 设置响应类型为失败
        // 构造失败消息，包含未能删除的文件名
        response.length = snprintf(response.data, sizeof(response.data), "删除失败: %s", filename);
    }

    // 尝试向客户端发送响应消息
    if (send_message(client->socket, &response) < 0) {
        // 如果发送失败，打印错误信息
        perror("发送rm响应失败");
        return -1;  // 返回错误代码
    }

    return 0;
}
